#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <stdlib.h>

//int main()
//{
//    pid_t id = fork();
//    if(id == 0)
//    {
//        // child
//        sleep(1);
//        printf("我是一个子进程！\n");
//        exit(8);
//    }
//    else if(id > 0)
//    {
//        // parent
//        int st = 0;
//        wait(&st);
//        printf("我是父进程，子进程是否正常退出：%d\n", WIFEXITED(st));
//        printf("我是父进程，我接收到退出码：%d\n", WEXITSTATUS(st));
//    }
//    else{
//        perror("fork()");
//        exit(1);
//    }
//    return 0;
//}

//int main()
//{
//    // 进程替换
//    printf("代码程序开始了！\n");
//    execl("/bin/ls", "ls", "-al", NULL);
//    printf("代码程序结束了！\n");
//    return 0;
//}
//
//int main()
//{
//    printf("Start\n");
//    execlp("ls", "-a", "-l", NULL);   // NULL表示传参结束
//    printf("End\n");
//    return 0;
//}
//char* const argv[]{
//    "ls",
//    "-a",
//    "-l",
//    NULL
//};
//
//int main()
//{
//    printf("Start\n");
//    execv("ls", argv);   // NULL表示传参结束
//    printf("End\n");
//    return 0;
//}
//
char* const myenv[] = {
    (char* const)"MyNUM=123456789",
    NULL
};
#include <stdlib.h>
int main(int argc, char* argv[], char* env[])
{

    for(int i = 0; myenv[i]; ++i)
        putenv(myenv[i]);
    for(int i = 0; env[i]; ++i)
        printf("%s\n", env[i]);
    return 0;
}
